package com.zhangtai.modules.dto;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.zhangtai.config.LongJsonDeserializer;
import com.zhangtai.config.LongJsonSerializer;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;


/**
 * 培训协议
 *
 * @author chenshun
 * @email sunlightcs@gmail.com
 * @date 2020-10-21 16:30:00
 */
@Data
@TableName("tb_protocol")
public class ProtocolDto implements Serializable {
	private static final long serialVersionUID = 1L;

			/**
		 * 协议id
		 */
			@TableId(value = "id", type = IdType.AUTO)
		@JsonDeserialize(using = LongJsonDeserializer.class)
		@JsonSerialize(using = LongJsonSerializer.class)
			private Long id;
			/**
		 * 甲方主体
		 */
			@ApiModelProperty(value="甲方主体",required = false)
			private String company;
			/**
		 * 甲方主体id
		 */
			@JsonDeserialize(using = LongJsonDeserializer.class)
			@JsonSerialize(using = LongJsonSerializer.class)
			@ApiModelProperty(value="甲方主体id",required = false)
			private Long companyId;
			/**
		 * 项目名称
		 */
			@ApiModelProperty(value="项目名称",required = false)
			private String projectName;
			/**
		 * 培训机构
		 */
			@ApiModelProperty(value="培训机构",required = false)
			private String trainingStructure;
			/**
		 * 培训开始时间
		 */
			@ApiModelProperty(value="培训开始时间",required = false)
			private Date trainingStartTime;
			/**
		 * 培训结束时间
		 */
			@ApiModelProperty(value="培训结束时间",required = false)
			private Date trainingEndTime;
			/**
		 * 培训方式   0 全脱产  1  半脱产  2 不脱产
		 */
			@ApiModelProperty(value="培训方式   0 全脱产  1  半脱产  2 不脱产",required = false)
			private Integer trainingMethod;
			/**
		 * 培训地点
		 */
			@ApiModelProperty(value="培训地点",required = false)
			private String trainingLocation;
			/**
		 * 签订合同日期
		 */
			@ApiModelProperty(value="签订合同日期",required = false)
			private Date signedTime;
			/**
		 * 培训类型
		 */
			@ApiModelProperty(value="培训类型",required = false)
			private Integer trainingType;
			/**
		 * 培训人数
		 */
			@ApiModelProperty(value="培训人数",required = false)
			private Integer trainingNum;

			/**
		 * 0:未删除，1：已删除
		 */
			@ApiModelProperty(value="0:未删除，1：已删除",required = false)
			private Date createTime;
			/**
		 * 0:未删除，1：已删除
		 */
			@ApiModelProperty(value="0:未删除，1：已删除",required = false)
			private Integer isDelete;
			/**
		 * 创建人
		 */
			@ApiModelProperty(value="创建人",required = false)
			private String createName;
			/**
		 * 创建人 code
		 */
			@ApiModelProperty(value="创建人 code",required = false)
			private String createCode;
			/**
		 * 培训模板
		 */
			@ApiModelProperty(value="培训模板",required = false)
			@JsonDeserialize(using = LongJsonDeserializer.class)
			@JsonSerialize(using = LongJsonSerializer.class)
			private Long template;
	/**
	 * 附件地址
	 */
	@ApiModelProperty(value="附件地址",required = false)
	private String fileUrl;

	/**
	 * 人员工oid
	 */
	@JsonDeserialize(using = LongJsonDeserializer.class)
	@JsonSerialize(using = LongJsonSerializer.class)
	@ApiModelProperty(value="人员工oid",required = false)
	private Long oid;
	/**
	 * 培训学杂费
	 */
	@ApiModelProperty(value="培训学杂费",required = false)
	private BigDecimal trainingSpending;
	/**
	 * 往返交通住宿伙食费
	 */
	@ApiModelProperty(value="往返交通住宿伙食费",required = false)
	private BigDecimal trainingFoodSpending;
	/**
	 * 培训费用合计
	 */
	@ApiModelProperty(value="培训费用合计",required = false)
	private BigDecimal trainingTotal;
	/**
	 * 服务开始日期
	 */
	@ApiModelProperty(value="服务开始日期",required = false)
	private Date serviceStartTime;
	/**
	 * 服务结束日期
	 */
	@ApiModelProperty(value="服务结束日期",required = false)
	private Date serviceEndTime;
	/**
	 * 签订状态
	 * export const protocolStatus = [
	 *   { label: '未签订', value: 0 },
	 *   { label: '签订中', value: 1 },
	 *   { label: '生效中', value: 2 },
	 *   { label: '已完成', value: 3 },
	 *   { label: '已终止', value: 4 },
	 * ]
	 */
	@ApiModelProperty(value="签订状态",required = false)
	private Integer status;
	/**
	 * 是否发送
	 */
	@ApiModelProperty(value="是否发送",required = false)
	private Integer isSend;
	/**
	 * 合同e签宝下载地址
	 */
	@ApiModelProperty(value="合同e签宝下载地址",required = false)
	private String contractEsignUrl;
	/**
	 * 合同阿里云下载地址
	 */
	@ApiModelProperty(value="合同阿里云下载地址",required = false)
	private String contractOssUrl;
/**
	 * 培训id
	 */
@ApiModelProperty(value="培训id",required = false)
	@JsonDeserialize(using = LongJsonDeserializer.class)
	@JsonSerialize(using = LongJsonSerializer.class)
	private Long protocolId;


	/**
	 * 姓名
	 */
	@ApiModelProperty(value="姓名",required = false)
	private String name;
	/**
	 * 性别
	 */
	@ApiModelProperty(value="性别",required = false)
	private String gender;
	/**
	 * 身份证号
	 */
	@ApiModelProperty(value="身份证号",required = false)
	private String idcard;


	private String code;


	/**
	 * 拟录用部门
	 */
	@ApiModelProperty(value="拟录用部门",required = false)
	private String unitname;
	/**
	 * 拟录用公司
	 */
	@ApiModelProperty(value="拟录用公司",required = false)
	private String orgname;


	/**
	 * 部门id
	 */


	@ApiModelProperty(value="部门id",required = false)
	@JsonDeserialize(using = LongJsonDeserializer.class)
	@JsonSerialize(using = LongJsonSerializer.class)
	private Long unitId;

	/**
	 * 公司id
	 */
	@ApiModelProperty(value="公司id",required = false)
	@JsonDeserialize(using = LongJsonDeserializer.class)
	@JsonSerialize(using = LongJsonSerializer.class)
	private Long orgId;
	/**
	 * 拟录用岗位
	 */
	@ApiModelProperty(value="拟录用岗位",required = false)
	private String jobname;
	/**
	 * 职位id
	 */
	@ApiModelProperty(value="职位id",required = false)
	@JsonDeserialize(using = LongJsonDeserializer.class)
	@JsonSerialize(using = LongJsonSerializer.class)
	private Long jobId;


	/**
	 * 员工状态
	 */
	@ApiModelProperty(value = "员工状态，2：在职，9：实习，3,4,5,6：离职", required = false)
	private String employeestatus;


	/**
	 * 手动终止原因
	 */
	private String remarks;

}
